package board;
import flixel.FlxSprite;
import flixel.group.FlxGroup;
import flixel.util.FlxRandom;
import flixel.FlxG;
/**
 * ...
 * @author ...
 */
class Roulette extends FlxGroup
{
	/*
	enum GameModes {
		Red;
		Green;
		Blue;
		Rgb(r:Int, g:Int, b:Int);
	}
	
	var ActualGameMode : GameModes;
	public function new() 
	{
		
	}*/
	
	public var disc:FlxSprite;
	public var arrow:FlxSprite;
	private var acceleracion:Int;
	private var velocidadMaxima:Int;
	private var desacceleracion:Int;
	private var tiempoGirando:Float;
	private var tiempoMaximo:Float;
	private var mode:Int;
	
	public function new()
	{
		super();
		acceleracion = 350;
		velocidadMaxima = 500;
		desacceleracion = 250;
		tiempoMaximo = 2;
		tiempoGirando = 0;
		mode = -1;
		disc = new FlxSprite(0, 60);
		disc.loadGraphic("assets/images/ruleta.png");
		add(disc);
		arrow = new FlxSprite(0, 0);
		arrow.loadGraphic("assets/images/flecha.png");
		arrow.angle = 90;
		arrow.x = 800 - 80;
		arrow.y = FlxG.height / 2 - arrow.height / 2;
		add(arrow);
	}
	
	public function spin()
	{
		mode = -1;
		tiempoMaximo = 2;
		disc.angle = FlxRandom.floatRanged(0,359);
		disc.angularVelocity = 0;
		tiempoGirando = 0;
		disc.angularAcceleration = acceleracion;
	}
	
	public function getMode()
	{
		if (disc.angularVelocity == 0)
		{
			if (disc.angle%360 >= 0 && disc.angle <= 51.43%360)
				mode = 7;
			if (disc.angle%360 > 51.43 && disc.angle <= 102.86%360)
				mode = 6;
			if (disc.angle%360 > 102.86 && disc.angle <= 154.29%360)
				mode = 5;
			if (disc.angle%360 > 154.29 && disc.angle <= 205.71%360)
				mode = 4;
			if (disc.angle%360 > 205.71 && disc.angle <= 257.14%360)
				mode = 3;
			if (disc.angle%360 > 257.14 && disc.angle <= 308.57%360)
				mode = 2;
			if (disc.angle%360 > 308.57 && disc.angle <= 359%360)
				mode = 1;
		}
		return mode;
	}
	
	override function update()
	{
		super.update();
		if (disc.angle >= 360)
			disc.angle = 0;
		if (disc.angularVelocity >= velocidadMaxima)
		{
			tiempoGirando += FlxG.elapsed;
			disc.angularAcceleration = 0;
		}
		
		if (tiempoMaximo < tiempoGirando)
			disc.angularAcceleration = -desacceleracion;
		
		if (disc.angularVelocity <= 0)
		{
			disc.angularVelocity = 0;
			disc.angularAcceleration = 0;
		}
		
	}
	
	
	
}